{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 关于金融数据的处理操作\n",
    "\n",
    "## 第五十一题 数据读取 读取本地EXCEL数据\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 设置显示的最大列、宽等参数，消掉打印不完全中间的省略号"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>简称</th>\n",
       "      <th>日期</th>\n",
       "      <th>前收盘价(元)</th>\n",
       "      <th>开盘价(元)</th>\n",
       "      <th>最高价(元)</th>\n",
       "      <th>最低价(元)</th>\n",
       "      <th>收盘价(元)</th>\n",
       "      <th>成交量(股)</th>\n",
       "      <th>成交金额(元)</th>\n",
       "      <th>涨跌(元)</th>\n",
       "      <th>涨跌幅(%)</th>\n",
       "      <th>均价(元)</th>\n",
       "      <th>换手率(%)</th>\n",
       "      <th>A股流通市值(元)</th>\n",
       "      <th>总市值(元)</th>\n",
       "      <th>A股流通股本(股)</th>\n",
       "      <th>市盈率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-04</td>\n",
       "      <td>16.1356</td>\n",
       "      <td>16.1444</td>\n",
       "      <td>16.1444</td>\n",
       "      <td>15.4997</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>42240610</td>\n",
       "      <td>754425783</td>\n",
       "      <td>-0.4151</td>\n",
       "      <td>-2.5725</td>\n",
       "      <td>17.8602</td>\n",
       "      <td>0.2264</td>\n",
       "      <td>3.320318e+11</td>\n",
       "      <td>3.320318e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.5614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-05</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>15.9501</td>\n",
       "      <td>15.3672</td>\n",
       "      <td>15.8618</td>\n",
       "      <td>58054793</td>\n",
       "      <td>1034181474</td>\n",
       "      <td>0.1413</td>\n",
       "      <td>0.8989</td>\n",
       "      <td>17.8139</td>\n",
       "      <td>0.3112</td>\n",
       "      <td>3.350163e+11</td>\n",
       "      <td>3.350163e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.6204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-06</td>\n",
       "      <td>15.8618</td>\n",
       "      <td>15.8088</td>\n",
       "      <td>16.0208</td>\n",
       "      <td>15.6234</td>\n",
       "      <td>15.9855</td>\n",
       "      <td>46772653</td>\n",
       "      <td>838667398</td>\n",
       "      <td>0.1236</td>\n",
       "      <td>0.7795</td>\n",
       "      <td>17.9307</td>\n",
       "      <td>0.2507</td>\n",
       "      <td>3.376278e+11</td>\n",
       "      <td>3.376278e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.6720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-07</td>\n",
       "      <td>15.9855</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>15.8088</td>\n",
       "      <td>15.3672</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>11350479</td>\n",
       "      <td>199502702</td>\n",
       "      <td>-0.5211</td>\n",
       "      <td>-3.2597</td>\n",
       "      <td>17.5766</td>\n",
       "      <td>0.0608</td>\n",
       "      <td>3.266223e+11</td>\n",
       "      <td>3.266223e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.4545</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-08</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>15.6675</td>\n",
       "      <td>15.7912</td>\n",
       "      <td>14.9345</td>\n",
       "      <td>15.4467</td>\n",
       "      <td>71918296</td>\n",
       "      <td>1262105060</td>\n",
       "      <td>-0.0177</td>\n",
       "      <td>-0.1142</td>\n",
       "      <td>17.5492</td>\n",
       "      <td>0.3855</td>\n",
       "      <td>3.262492e+11</td>\n",
       "      <td>3.262492e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.4471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>324</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-05</td>\n",
       "      <td>14.9800</td>\n",
       "      <td>14.9500</td>\n",
       "      <td>14.9800</td>\n",
       "      <td>14.5200</td>\n",
       "      <td>14.9200</td>\n",
       "      <td>40194577</td>\n",
       "      <td>592160198</td>\n",
       "      <td>-0.0600</td>\n",
       "      <td>-0.4005</td>\n",
       "      <td>14.7323</td>\n",
       "      <td>0.1859</td>\n",
       "      <td>3.225447e+11</td>\n",
       "      <td>3.225447e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0744</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>325</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-08</td>\n",
       "      <td>14.9200</td>\n",
       "      <td>14.7800</td>\n",
       "      <td>14.9000</td>\n",
       "      <td>14.5100</td>\n",
       "      <td>14.8600</td>\n",
       "      <td>43568576</td>\n",
       "      <td>638781010</td>\n",
       "      <td>-0.0600</td>\n",
       "      <td>-0.4021</td>\n",
       "      <td>14.6615</td>\n",
       "      <td>0.2015</td>\n",
       "      <td>3.212476e+11</td>\n",
       "      <td>3.212476e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>326</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-09</td>\n",
       "      <td>14.8600</td>\n",
       "      <td>14.6900</td>\n",
       "      <td>14.8400</td>\n",
       "      <td>14.6600</td>\n",
       "      <td>14.7600</td>\n",
       "      <td>19225492</td>\n",
       "      <td>283864640</td>\n",
       "      <td>-0.1000</td>\n",
       "      <td>-0.6729</td>\n",
       "      <td>14.765</td>\n",
       "      <td>0.0889</td>\n",
       "      <td>3.190858e+11</td>\n",
       "      <td>3.190858e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0093</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>327</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaT</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>328</th>\n",
       "      <td>数据来源：Wind资讯</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaT</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>329 rows × 18 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              代码    简称         日期  前收盘价(元)   开盘价(元)   最高价(元)   最低价(元)   收盘价(元)    成交量(股)     成交金额(元)   涨跌(元)  涨跌幅(%)    均价(元)  换手率(%)     A股流通市值(元)        总市值(元)     A股流通股本(股)     市盈率\n",
       "0      600000.SH  浦发银行 2016-01-04  16.1356  16.1444  16.1444  15.4997  15.7205  42240610   754425783 -0.4151 -2.5725  17.8602  0.2264  3.320318e+11  3.320318e+11  1.865347e+10  6.5614\n",
       "1      600000.SH  浦发银行 2016-01-05  15.7205  15.4644  15.9501  15.3672  15.8618  58054793  1034181474  0.1413  0.8989  17.8139  0.3112  3.350163e+11  3.350163e+11  1.865347e+10  6.6204\n",
       "2      600000.SH  浦发银行 2016-01-06  15.8618  15.8088  16.0208  15.6234  15.9855  46772653   838667398  0.1236  0.7795  17.9307  0.2507  3.376278e+11  3.376278e+11  1.865347e+10  6.6720\n",
       "3      600000.SH  浦发银行 2016-01-07  15.9855  15.7205  15.8088  15.3672  15.4644  11350479   199502702 -0.5211 -3.2597  17.5766  0.0608  3.266223e+11  3.266223e+11  1.865347e+10  6.4545\n",
       "4      600000.SH  浦发银行 2016-01-08  15.4644  15.6675  15.7912  14.9345  15.4467  71918296  1262105060 -0.0177 -0.1142  17.5492  0.3855  3.262492e+11  3.262492e+11  1.865347e+10  6.4471\n",
       "..           ...   ...        ...      ...      ...      ...      ...      ...       ...         ...     ...     ...      ...     ...           ...           ...           ...     ...\n",
       "324    600000.SH  浦发银行 2017-05-05  14.9800  14.9500  14.9800  14.5200  14.9200  40194577   592160198 -0.0600 -0.4005  14.7323  0.1859  3.225447e+11  3.225447e+11  2.161828e+10  6.0744\n",
       "325    600000.SH  浦发银行 2017-05-08  14.9200  14.7800  14.9000  14.5100  14.8600  43568576   638781010 -0.0600 -0.4021  14.6615  0.2015  3.212476e+11  3.212476e+11  2.161828e+10  6.0500\n",
       "326    600000.SH  浦发银行 2017-05-09  14.8600  14.6900  14.8400  14.6600  14.7600  19225492   283864640 -0.1000 -0.6729   14.765  0.0889  3.190858e+11  3.190858e+11  2.161828e+10  6.0093\n",
       "327          NaN   NaN        NaT      NaN      NaN      NaN      NaN      NaN       NaN         NaN     NaN     NaN      NaN     NaN           NaN           NaN           NaN     NaN\n",
       "328  数据来源：Wind资讯   NaN        NaT      NaN      NaN      NaN      NaN      NaN       NaN         NaN     NaN     NaN      NaN     NaN           NaN           NaN           NaN     NaN\n",
       "\n",
       "[329 rows x 18 columns]"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.set_option('display.max_columns', 1000)\n",
    "pd.set_option('display.width', 1000)\n",
    "pd.set_option('display.max_colwidth', 1000)\n",
    "\n",
    "df = pd.read_excel(r\"C:\\Users\\灬月光皆旧梦\\Desktop\\51-80数据.xls\")\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五十二题  数据查看 查看数据前三行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>简称</th>\n",
       "      <th>日期</th>\n",
       "      <th>前收盘价(元)</th>\n",
       "      <th>开盘价(元)</th>\n",
       "      <th>最高价(元)</th>\n",
       "      <th>最低价(元)</th>\n",
       "      <th>收盘价(元)</th>\n",
       "      <th>成交量(股)</th>\n",
       "      <th>成交金额(元)</th>\n",
       "      <th>涨跌(元)</th>\n",
       "      <th>涨跌幅(%)</th>\n",
       "      <th>均价(元)</th>\n",
       "      <th>换手率(%)</th>\n",
       "      <th>A股流通市值(元)</th>\n",
       "      <th>总市值(元)</th>\n",
       "      <th>A股流通股本(股)</th>\n",
       "      <th>市盈率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-04</td>\n",
       "      <td>16.1356</td>\n",
       "      <td>16.1444</td>\n",
       "      <td>16.1444</td>\n",
       "      <td>15.4997</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>42240610</td>\n",
       "      <td>754425783</td>\n",
       "      <td>-0.4151</td>\n",
       "      <td>-2.5725</td>\n",
       "      <td>17.8602</td>\n",
       "      <td>0.2264</td>\n",
       "      <td>3.320318e+11</td>\n",
       "      <td>3.320318e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.5614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-05</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>15.9501</td>\n",
       "      <td>15.3672</td>\n",
       "      <td>15.8618</td>\n",
       "      <td>58054793</td>\n",
       "      <td>1034181474</td>\n",
       "      <td>0.1413</td>\n",
       "      <td>0.8989</td>\n",
       "      <td>17.8139</td>\n",
       "      <td>0.3112</td>\n",
       "      <td>3.350163e+11</td>\n",
       "      <td>3.350163e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.6204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-06</td>\n",
       "      <td>15.8618</td>\n",
       "      <td>15.8088</td>\n",
       "      <td>16.0208</td>\n",
       "      <td>15.6234</td>\n",
       "      <td>15.9855</td>\n",
       "      <td>46772653</td>\n",
       "      <td>838667398</td>\n",
       "      <td>0.1236</td>\n",
       "      <td>0.7795</td>\n",
       "      <td>17.9307</td>\n",
       "      <td>0.2507</td>\n",
       "      <td>3.376278e+11</td>\n",
       "      <td>3.376278e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.6720</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          代码    简称         日期  前收盘价(元)   开盘价(元)   最高价(元)   最低价(元)   收盘价(元)  \\\n",
       "0  600000.SH  浦发银行 2016-01-04  16.1356  16.1444  16.1444  15.4997  15.7205   \n",
       "1  600000.SH  浦发银行 2016-01-05  15.7205  15.4644  15.9501  15.3672  15.8618   \n",
       "2  600000.SH  浦发银行 2016-01-06  15.8618  15.8088  16.0208  15.6234  15.9855   \n",
       "\n",
       "     成交量(股)     成交金额(元)   涨跌(元)  涨跌幅(%)    均价(元)  换手率(%)     A股流通市值(元)  \\\n",
       "0  42240610   754425783 -0.4151 -2.5725  17.8602  0.2264  3.320318e+11   \n",
       "1  58054793  1034181474  0.1413  0.8989  17.8139  0.3112  3.350163e+11   \n",
       "2  46772653   838667398  0.1236  0.7795  17.9307  0.2507  3.376278e+11   \n",
       "\n",
       "         总市值(元)     A股流通股本(股)     市盈率  \n",
       "0  3.320318e+11  1.865347e+10  6.5614  \n",
       "1  3.350163e+11  1.865347e+10  6.6204  \n",
       "2  3.376278e+11  1.865347e+10  6.6720  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五十三题  缺失值处理 查看每列数据缺失值情况\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "代码           1\n",
       "简称           2\n",
       "日期           2\n",
       "前收盘价(元)      2\n",
       "开盘价(元)       2\n",
       "最高价(元)       2\n",
       "最低价(元)       2\n",
       "收盘价(元)       2\n",
       "成交量(股)       2\n",
       "成交金额(元)      2\n",
       "涨跌(元)        2\n",
       "涨跌幅(%)       2\n",
       "均价(元)        2\n",
       "换手率(%)       2\n",
       "A股流通市值(元)    2\n",
       "总市值(元)       2\n",
       "A股流通股本(股)    2\n",
       "市盈率          2\n",
       "dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五十四题 缺失值处理 提取日期列含有空值的行\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>简称</th>\n",
       "      <th>日期</th>\n",
       "      <th>前收盘价(元)</th>\n",
       "      <th>开盘价(元)</th>\n",
       "      <th>最高价(元)</th>\n",
       "      <th>最低价(元)</th>\n",
       "      <th>收盘价(元)</th>\n",
       "      <th>成交量(股)</th>\n",
       "      <th>成交金额(元)</th>\n",
       "      <th>涨跌(元)</th>\n",
       "      <th>涨跌幅(%)</th>\n",
       "      <th>均价(元)</th>\n",
       "      <th>换手率(%)</th>\n",
       "      <th>A股流通市值(元)</th>\n",
       "      <th>总市值(元)</th>\n",
       "      <th>A股流通股本(股)</th>\n",
       "      <th>市盈率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>327</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaT</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>328</th>\n",
       "      <td>数据来源：Wind资讯</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaT</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              代码   简称  日期  前收盘价(元)  开盘价(元)  最高价(元)  最低价(元)  收盘价(元) 成交量(股) 成交金额(元)  涨跌(元)  涨跌幅(%) 均价(元) 换手率(%)  A股流通市值(元)  总市值(元)  A股流通股本(股)  市盈率\n",
       "327          NaN  NaN NaT      NaN     NaN     NaN     NaN     NaN    NaN     NaN    NaN     NaN   NaN    NaN        NaN     NaN        NaN  NaN\n",
       "328  数据来源：Wind资讯  NaN NaT      NaN     NaN     NaN     NaN     NaN    NaN     NaN    NaN     NaN   NaN    NaN        NaN     NaN        NaN  NaN"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['日期'].isnull()]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五十五题 输出每列缺失值具体行数\n",
    "#### 期望输出为：\n",
    "- 列名：\"代码\", 第[xxx,xxx]行位置有缺失值\n",
    "- 列名：\"xxx\", 第[xxx,xxx]行位置有缺失值\n",
    "- 列名：\"xxxx\", 第[xxx,xxx,xxx]行位置有缺失值\n",
    "-  ......."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。\n",
    "\n",
    "- pandas判断缺失值一般采用 isnull()，然而生成的却是所有数据的true／false矩阵，对于庞大的数据dataframe，很难一眼看出来哪个数据缺失，一共有多少个缺失数据，缺失数据的位置。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['代码', '简称', '日期', '前收盘价(元)', '开盘价(元)', '最高价(元)', '最低价(元)', '收盘价(元)', '成交量(股)', '成交金额(元)', '涨跌(元)', '涨跌幅(%)', '均价(元)', '换手率(%)', 'A股流通市值(元)', '总市值(元)', 'A股流通股本(股)', '市盈率'], dtype='object')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "329"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(df)   # df: 329 rows × 18 columns  每一列的长度是329"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False, False, False, False, False, False, False,\n",
       "       False, False, False,  True, False])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['代码'].isnull().values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "327    NaN\n",
       "Name: 代码, dtype: object"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['代码'][df['代码'].isnull().values]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[327]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['代码'][df['代码'].isnull().values].index.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[327, 328]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['开盘价(元)'][df['开盘价(元)'].isnull().values].index.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "列名:\"代码\",第[327]行位置有缺失值\n",
      "列名:\"简称\",第[327, 328]行位置有缺失值\n",
      "列名:\"日期\",第[327, 328]行位置有缺失值\n",
      "列名:\"前收盘价(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"开盘价(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"最高价(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"最低价(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"收盘价(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"成交量(股)\",第[327, 328]行位置有缺失值\n",
      "列名:\"成交金额(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"涨跌(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"涨跌幅(%)\",第[327, 328]行位置有缺失值\n",
      "列名:\"均价(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"换手率(%)\",第[327, 328]行位置有缺失值\n",
      "列名:\"A股流通市值(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"总市值(元)\",第[327, 328]行位置有缺失值\n",
      "列名:\"A股流通股本(股)\",第[327, 328]行位置有缺失值\n",
      "列名:\"市盈率\",第[327, 328]行位置有缺失值\n"
     ]
    }
   ],
   "source": [
    "for i in df.columns:\n",
    "    if df[i].count() != len(df):\n",
    "        row = df[i][df[i].isnull().values].index.tolist()\n",
    "        print('列名:\"{}\",第{}行位置有缺失值'.format(i,row))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五十六题  缺失值处理 删除所有存在缺失值的行"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 备注：\n",
    "- axis： 0 是行操作（默认），1 -是列操作；\n",
    "- how： any 是只要有空值就删除（默认），而 all 是全部为空值才删除。\n",
    "- inplace： False 是返回新的数据集（默认）， True 是在原数据集上操作。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>简称</th>\n",
       "      <th>日期</th>\n",
       "      <th>前收盘价(元)</th>\n",
       "      <th>开盘价(元)</th>\n",
       "      <th>最高价(元)</th>\n",
       "      <th>最低价(元)</th>\n",
       "      <th>收盘价(元)</th>\n",
       "      <th>成交量(股)</th>\n",
       "      <th>成交金额(元)</th>\n",
       "      <th>涨跌(元)</th>\n",
       "      <th>涨跌幅(%)</th>\n",
       "      <th>均价(元)</th>\n",
       "      <th>换手率(%)</th>\n",
       "      <th>A股流通市值(元)</th>\n",
       "      <th>总市值(元)</th>\n",
       "      <th>A股流通股本(股)</th>\n",
       "      <th>市盈率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-04</td>\n",
       "      <td>16.1356</td>\n",
       "      <td>16.1444</td>\n",
       "      <td>16.1444</td>\n",
       "      <td>15.4997</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>42240610</td>\n",
       "      <td>754425783</td>\n",
       "      <td>-0.4151</td>\n",
       "      <td>-2.5725</td>\n",
       "      <td>17.8602</td>\n",
       "      <td>0.2264</td>\n",
       "      <td>3.320318e+11</td>\n",
       "      <td>3.320318e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.5614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-05</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>15.9501</td>\n",
       "      <td>15.3672</td>\n",
       "      <td>15.8618</td>\n",
       "      <td>58054793</td>\n",
       "      <td>1034181474</td>\n",
       "      <td>0.1413</td>\n",
       "      <td>0.8989</td>\n",
       "      <td>17.8139</td>\n",
       "      <td>0.3112</td>\n",
       "      <td>3.350163e+11</td>\n",
       "      <td>3.350163e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.6204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-06</td>\n",
       "      <td>15.8618</td>\n",
       "      <td>15.8088</td>\n",
       "      <td>16.0208</td>\n",
       "      <td>15.6234</td>\n",
       "      <td>15.9855</td>\n",
       "      <td>46772653</td>\n",
       "      <td>838667398</td>\n",
       "      <td>0.1236</td>\n",
       "      <td>0.7795</td>\n",
       "      <td>17.9307</td>\n",
       "      <td>0.2507</td>\n",
       "      <td>3.376278e+11</td>\n",
       "      <td>3.376278e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.6720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-07</td>\n",
       "      <td>15.9855</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>15.8088</td>\n",
       "      <td>15.3672</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>11350479</td>\n",
       "      <td>199502702</td>\n",
       "      <td>-0.5211</td>\n",
       "      <td>-3.2597</td>\n",
       "      <td>17.5766</td>\n",
       "      <td>0.0608</td>\n",
       "      <td>3.266223e+11</td>\n",
       "      <td>3.266223e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.4545</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-08</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>15.6675</td>\n",
       "      <td>15.7912</td>\n",
       "      <td>14.9345</td>\n",
       "      <td>15.4467</td>\n",
       "      <td>71918296</td>\n",
       "      <td>1262105060</td>\n",
       "      <td>-0.0177</td>\n",
       "      <td>-0.1142</td>\n",
       "      <td>17.5492</td>\n",
       "      <td>0.3855</td>\n",
       "      <td>3.262492e+11</td>\n",
       "      <td>3.262492e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.4471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>322</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-03</td>\n",
       "      <td>15.1600</td>\n",
       "      <td>15.1600</td>\n",
       "      <td>15.1600</td>\n",
       "      <td>15.0500</td>\n",
       "      <td>15.0800</td>\n",
       "      <td>14247943</td>\n",
       "      <td>215130847</td>\n",
       "      <td>-0.0800</td>\n",
       "      <td>-0.5277</td>\n",
       "      <td>15.0991</td>\n",
       "      <td>0.0659</td>\n",
       "      <td>3.260037e+11</td>\n",
       "      <td>3.260037e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.1395</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>323</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-04</td>\n",
       "      <td>15.0800</td>\n",
       "      <td>15.0700</td>\n",
       "      <td>15.0700</td>\n",
       "      <td>14.9000</td>\n",
       "      <td>14.9800</td>\n",
       "      <td>19477788</td>\n",
       "      <td>291839737</td>\n",
       "      <td>-0.1000</td>\n",
       "      <td>-0.6631</td>\n",
       "      <td>14.9832</td>\n",
       "      <td>0.0901</td>\n",
       "      <td>3.238418e+11</td>\n",
       "      <td>3.238418e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>324</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-05</td>\n",
       "      <td>14.9800</td>\n",
       "      <td>14.9500</td>\n",
       "      <td>14.9800</td>\n",
       "      <td>14.5200</td>\n",
       "      <td>14.9200</td>\n",
       "      <td>40194577</td>\n",
       "      <td>592160198</td>\n",
       "      <td>-0.0600</td>\n",
       "      <td>-0.4005</td>\n",
       "      <td>14.7323</td>\n",
       "      <td>0.1859</td>\n",
       "      <td>3.225447e+11</td>\n",
       "      <td>3.225447e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0744</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>325</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-08</td>\n",
       "      <td>14.9200</td>\n",
       "      <td>14.7800</td>\n",
       "      <td>14.9000</td>\n",
       "      <td>14.5100</td>\n",
       "      <td>14.8600</td>\n",
       "      <td>43568576</td>\n",
       "      <td>638781010</td>\n",
       "      <td>-0.0600</td>\n",
       "      <td>-0.4021</td>\n",
       "      <td>14.6615</td>\n",
       "      <td>0.2015</td>\n",
       "      <td>3.212476e+11</td>\n",
       "      <td>3.212476e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>326</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-09</td>\n",
       "      <td>14.8600</td>\n",
       "      <td>14.6900</td>\n",
       "      <td>14.8400</td>\n",
       "      <td>14.6600</td>\n",
       "      <td>14.7600</td>\n",
       "      <td>19225492</td>\n",
       "      <td>283864640</td>\n",
       "      <td>-0.1000</td>\n",
       "      <td>-0.6729</td>\n",
       "      <td>14.765</td>\n",
       "      <td>0.0889</td>\n",
       "      <td>3.190858e+11</td>\n",
       "      <td>3.190858e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0093</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>327 rows × 18 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            代码    简称         日期  前收盘价(元)   开盘价(元)   最高价(元)   最低价(元)   收盘价(元)    成交量(股)     成交金额(元)   涨跌(元)  涨跌幅(%)    均价(元)  换手率(%)     A股流通市值(元)        总市值(元)     A股流通股本(股)     市盈率\n",
       "0    600000.SH  浦发银行 2016-01-04  16.1356  16.1444  16.1444  15.4997  15.7205  42240610   754425783 -0.4151 -2.5725  17.8602  0.2264  3.320318e+11  3.320318e+11  1.865347e+10  6.5614\n",
       "1    600000.SH  浦发银行 2016-01-05  15.7205  15.4644  15.9501  15.3672  15.8618  58054793  1034181474  0.1413  0.8989  17.8139  0.3112  3.350163e+11  3.350163e+11  1.865347e+10  6.6204\n",
       "2    600000.SH  浦发银行 2016-01-06  15.8618  15.8088  16.0208  15.6234  15.9855  46772653   838667398  0.1236  0.7795  17.9307  0.2507  3.376278e+11  3.376278e+11  1.865347e+10  6.6720\n",
       "3    600000.SH  浦发银行 2016-01-07  15.9855  15.7205  15.8088  15.3672  15.4644  11350479   199502702 -0.5211 -3.2597  17.5766  0.0608  3.266223e+11  3.266223e+11  1.865347e+10  6.4545\n",
       "4    600000.SH  浦发银行 2016-01-08  15.4644  15.6675  15.7912  14.9345  15.4467  71918296  1262105060 -0.0177 -0.1142  17.5492  0.3855  3.262492e+11  3.262492e+11  1.865347e+10  6.4471\n",
       "..         ...   ...        ...      ...      ...      ...      ...      ...       ...         ...     ...     ...      ...     ...           ...           ...           ...     ...\n",
       "322  600000.SH  浦发银行 2017-05-03  15.1600  15.1600  15.1600  15.0500  15.0800  14247943   215130847 -0.0800 -0.5277  15.0991  0.0659  3.260037e+11  3.260037e+11  2.161828e+10  6.1395\n",
       "323  600000.SH  浦发银行 2017-05-04  15.0800  15.0700  15.0700  14.9000  14.9800  19477788   291839737 -0.1000 -0.6631  14.9832  0.0901  3.238418e+11  3.238418e+11  2.161828e+10  6.0988\n",
       "324  600000.SH  浦发银行 2017-05-05  14.9800  14.9500  14.9800  14.5200  14.9200  40194577   592160198 -0.0600 -0.4005  14.7323  0.1859  3.225447e+11  3.225447e+11  2.161828e+10  6.0744\n",
       "325  600000.SH  浦发银行 2017-05-08  14.9200  14.7800  14.9000  14.5100  14.8600  43568576   638781010 -0.0600 -0.4021  14.6615  0.2015  3.212476e+11  3.212476e+11  2.161828e+10  6.0500\n",
       "326  600000.SH  浦发银行 2017-05-09  14.8600  14.6900  14.8400  14.6600  14.7600  19225492   283864640 -0.1000 -0.6729   14.765  0.0889  3.190858e+11  3.190858e+11  2.161828e+10  6.0093\n",
       "\n",
       "[327 rows x 18 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.dropna(axis = 0,how = 'any',inplace = True)\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五十七题 数据可视化  绘制收盘价的折线图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1da15306388>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['收盘价(元)'].plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 等价于：\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x189da3c8bc8>]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.plot(df['收盘价(元)'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五十八题  数据可视化 同时绘制开盘价与收盘价\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x189db00c2c8>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAD2CAYAAADcUJy6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOydd5wdVd3/32dur9tLkk0jJEACSYBAKEJCky4iSrMg5fFRigKK8KDij8cGUqygUlTwEQFBQBSkhRAgtDQIIb3uZnu99+6tM3N+f8zsLduyNdvm/XrtK/fOnJk59272M9/5nO/5HiGlxMLCwsJi/KGMdAcsLCwsLIYHS+AtLCwsximWwFtYWFiMUyyBt7CwsBinWAJvYWFhMU6xj3QHOiguLpYzZswY6W5YWFhYjClWr17dKKUs6W7fqBH4GTNmsGrVqpHuhoWFhcWYQgixu6d9lkVjYWFhMU6xBN7CwsJinGIJvIWFhcU4ZdR48BYWFuOHVCpFVVUV8Xh8pLsybnC73VRUVOBwOPp8jCXwFhYWQ05VVRWBQIAZM2YghBjp7ox5pJQ0NTVRVVXFzJkz+3xcnywaIUSZEOJN8/XtQojl5s8mIcT/9HDMFCFEVVbbbtN4LCwsxh/xeJyioiJL3IcIIQRFRUX9fiLaZwQvhCgAHgF8AFLKH2btewp4tIdDFwM/kVL+rl89srCwGBdY4j60DOT77EsErwEXAaFOFzsKqJJS7u3huGOAq4QQa4QQP+13zywsLEaMtliK59b19KdtMVbYp8BLKUNSyrZudn0L+E0vh74ILAWOAo4VQszv3EAI8TUhxCohxKqGhoY+dtnCwmK4uf7xtXzr8XXsaYqOdFeGlMEO+qqqmn7dl7U0du3a1edz79ixYyBd6pUBpUkKIfKBUinl9l6arZRShqWUGrAWmN25gZTyASnlIinlopISy6K3sBgtbK4NA5DS9RHuyeB55513uPXWWwH4xS9+wR133NFtu7a2Nk4++eRez3XttdeyfPlyAJ566imuu+66HtveeeedrFmzBoCamhpOPPFETj311JyfE088kVgsBsDzzz/PY4891t+P1ysDzaI5D3hhH21eEkJcArQBnwb+MMBrWVhY7GfakxoAMfPfsUhVVRVVVVU4HA6cTicA//jHP3jmmWcA0DQNXddxOBxcfPHFbN++HYfDwdKlSwEjot6zZ0/6fNFolDVr1nD//feTSqX43e9+R1lZGa+//jonnXRSzrV37dpFZWUlN998MwCTJk1ixYoVvfb3W9/6Fl/84hc599xzCQQCQ/IdDFTgTwfu7ngjhDgZmCul/G1Wm9uB14Ek8Hsp5eYB99LCwmK/Ek0aVkQsNXiBv/35DXxSHdp3w34wd3KQH547r9c2W7ZsYfny5XzmM58B4L333qOxsZGrrrqK3bt343K5uOSSS7jxxhux2+386U9/Yvv27axZs4bbb7+dc845B13XkVJis9n47W9/y9y5c1EUheuuu46rr76ac889l/PPP5+GhgYuvPDC9LX/8pe/cM0116TfSyl7HCTN3velL32JZ599li9/+cuD/YqAfgi8lHJp1utLO+1bBizrtO114OBB9s/CwmIESGmGvxwdwxG8oigoSsaF/tnPfsYpp5zCQw89xG233cYZZ5xBPB7n5JNPZsOGDezevRubzQbA0qVLWb9+PUuXLuWGG25g3rx5/PWvf+Xwww/nsssuY8aMGSxduhSXy8Utt9zCfffdh6qqXHqpIY3bt2/nkEMOSV970aJFOBwOdu7cSXl5OZFIBEVRKCoqYsqUKTz99NMAHHPMMfzoRz/a/wJvYWEx8Ygl1X032gf7irT3B9FolOOOO45169axa9cuPvnkE2688Uby8/M56qijOO2001ixYgUXXXQR559/Pp///Oc544wzeO211wAj+r/jjjt44oknuOOOO3jttdd4/vnnufzyy7nllltYuXJlr4Ouq1evBuC8887j3nvv5ZVXXsHtdvPVr341p53H40l78kOBVYvGwsIiB13PCNVYjuBjsRiVlZW89NJLeL1evvvd7/KFL3yB3//+97S3t5Ofnw/AI488wk033YQQgr/97W8sXLiQe+65hzPOOCN9rsWLF3PUUUcBhp8ejUYpLy8HwOv1Arl56h6Ph0gk0qVPe/fupbS0tMc+79y5k6lTpw7+w5tYEbyFhUUOrbFU+vVYFvhkMsmUKVMoKSmhuroagHPPPZerrrqKu+9ODyHS1tbGAw88wG233YbD4UAIQTKZxG63k0wm+d73vtfl3Dt37uS4447r8dpnnXUWTz/9NJdddll62/r168nPz+8ygJpKpdL1ZZ588knOP//8QX3ubCyBt7CwyKExkgBgodjGYZ+8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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']   #解决中文乱码\n",
    "plt.rcParams['axes.unicode_minus'] = False     #解决符号问题\n",
    "df[['收盘价(元)','开盘价(元)']].plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第五十九题  数据可视化  绘制涨跌幅的直方图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([  1.,   0.,   1.,   7.,  32., 224.,  53.,   5.,   2.,   2.]),\n",
       " array([-8.0217 , -6.59525, -5.1688 , -3.74235, -2.3159 , -0.88945,\n",
       "         0.537  ,  1.96345,  3.3899 ,  4.81635,  6.2428 ]),\n",
       " <a list of 10 Patch objects>)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(df['涨跌幅(%)'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 等价于"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1da15b87d08>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['涨跌幅(%)'].hist()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十题 数据可视化 根据上一题的结果想让直方图更细致"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x1da15c92ec8>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['涨跌幅(%)'].hist(bins = 30)  #bins: 直方图的柱数，可选项，默认为10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十一题  数据创建 以data的列名创建一个dataframe\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>简称</th>\n",
       "      <th>日期</th>\n",
       "      <th>前收盘价(元)</th>\n",
       "      <th>开盘价(元)</th>\n",
       "      <th>最高价(元)</th>\n",
       "      <th>最低价(元)</th>\n",
       "      <th>收盘价(元)</th>\n",
       "      <th>成交量(股)</th>\n",
       "      <th>成交金额(元)</th>\n",
       "      <th>涨跌(元)</th>\n",
       "      <th>涨跌幅(%)</th>\n",
       "      <th>均价(元)</th>\n",
       "      <th>换手率(%)</th>\n",
       "      <th>A股流通市值(元)</th>\n",
       "      <th>总市值(元)</th>\n",
       "      <th>A股流通股本(股)</th>\n",
       "      <th>市盈率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [代码, 简称, 日期, 前收盘价(元), 开盘价(元), 最高价(元), 最低价(元), 收盘价(元), 成交量(股), 成交金额(元), 涨跌(元), 涨跌幅(%), 均价(元), 换手率(%), A股流通市值(元), 总市值(元), A股流通股本(股), 市盈率]\n",
       "Index: []"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp = pd.DataFrame(columns = df.columns.to_list())\n",
    "temp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十二题  异常值处理 打印所有换手率不是数字的行\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>简称</th>\n",
       "      <th>日期</th>\n",
       "      <th>前收盘价(元)</th>\n",
       "      <th>开盘价(元)</th>\n",
       "      <th>最高价(元)</th>\n",
       "      <th>最低价(元)</th>\n",
       "      <th>收盘价(元)</th>\n",
       "      <th>成交量(股)</th>\n",
       "      <th>成交金额(元)</th>\n",
       "      <th>涨跌(元)</th>\n",
       "      <th>涨跌幅(%)</th>\n",
       "      <th>均价(元)</th>\n",
       "      <th>换手率(%)</th>\n",
       "      <th>A股流通市值(元)</th>\n",
       "      <th>总市值(元)</th>\n",
       "      <th>A股流通股本(股)</th>\n",
       "      <th>市盈率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-16</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-17</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-18</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-19</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-22</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-23</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-24</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-25</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-26</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-29</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-01</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-02</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-03</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-04</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-07</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-08</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-09</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-10</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           代码    简称         日期  前收盘价(元)   开盘价(元)   最高价(元)   最低价(元)   收盘价(元) 成交量(股) 成交金额(元)  涨跌(元)  涨跌幅(%) 均价(元) 换手率(%)     A股流通市值(元)        总市值(元)     A股流通股本(股)    市盈率\n",
       "26  600000.SH  浦发银行 2016-02-16  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "27  600000.SH  浦发银行 2016-02-17  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "28  600000.SH  浦发银行 2016-02-18  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "29  600000.SH  浦发银行 2016-02-19  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "30  600000.SH  浦发银行 2016-02-22  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "31  600000.SH  浦发银行 2016-02-23  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "32  600000.SH  浦发银行 2016-02-24  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "33  600000.SH  浦发银行 2016-02-25  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "34  600000.SH  浦发银行 2016-02-26  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "35  600000.SH  浦发银行 2016-02-29  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "36  600000.SH  浦发银行 2016-03-01  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "37  600000.SH  浦发银行 2016-03-02  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "38  600000.SH  浦发银行 2016-03-03  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "39  600000.SH  浦发银行 2016-03-04  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "40  600000.SH  浦发银行 2016-03-07  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "41  600000.SH  浦发银行 2016-03-08  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "42  600000.SH  浦发银行 2016-03-09  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "43  600000.SH  浦发银行 2016-03-10  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for index,row in df.iterrows():\n",
    "    if type(row[13]) != float:\n",
    "        temp = temp.append(df.loc[index])\n",
    "temp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十三题 异常值处理 打印所有换手率为--的行\n",
    "- 通过上一题我们发现换手率的异常值只有 --"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>简称</th>\n",
       "      <th>日期</th>\n",
       "      <th>前收盘价(元)</th>\n",
       "      <th>开盘价(元)</th>\n",
       "      <th>最高价(元)</th>\n",
       "      <th>最低价(元)</th>\n",
       "      <th>收盘价(元)</th>\n",
       "      <th>成交量(股)</th>\n",
       "      <th>成交金额(元)</th>\n",
       "      <th>涨跌(元)</th>\n",
       "      <th>涨跌幅(%)</th>\n",
       "      <th>均价(元)</th>\n",
       "      <th>换手率(%)</th>\n",
       "      <th>A股流通市值(元)</th>\n",
       "      <th>总市值(元)</th>\n",
       "      <th>A股流通股本(股)</th>\n",
       "      <th>市盈率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-16</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-17</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-18</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-19</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-22</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-23</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-24</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-25</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-26</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-02-29</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-01</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-02</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-03</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-04</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-07</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-08</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-09</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-03-10</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>16.2946</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>--</td>\n",
       "      <td>--</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>3.441565e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.801</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           代码    简称         日期  前收盘价(元)   开盘价(元)   最高价(元)   最低价(元)   收盘价(元) 成交量(股) 成交金额(元)  涨跌(元)  涨跌幅(%) 均价(元) 换手率(%)     A股流通市值(元)        总市值(元)     A股流通股本(股)    市盈率\n",
       "26  600000.SH  浦发银行 2016-02-16  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "27  600000.SH  浦发银行 2016-02-17  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "28  600000.SH  浦发银行 2016-02-18  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "29  600000.SH  浦发银行 2016-02-19  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "30  600000.SH  浦发银行 2016-02-22  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "31  600000.SH  浦发银行 2016-02-23  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "32  600000.SH  浦发银行 2016-02-24  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "33  600000.SH  浦发银行 2016-02-25  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "34  600000.SH  浦发银行 2016-02-26  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "35  600000.SH  浦发银行 2016-02-29  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "36  600000.SH  浦发银行 2016-03-01  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "37  600000.SH  浦发银行 2016-03-02  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "38  600000.SH  浦发银行 2016-03-03  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "39  600000.SH  浦发银行 2016-03-04  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "40  600000.SH  浦发银行 2016-03-07  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "41  600000.SH  浦发银行 2016-03-08  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "42  600000.SH  浦发银行 2016-03-09  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801\n",
       "43  600000.SH  浦发银行 2016-03-10  16.2946  16.2946  16.2946  16.2946  16.2946     --      --    0.0     0.0    --     --  3.441565e+11  3.441565e+11  1.865347e+10  6.801"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['换手率(%)'] == '--']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十四 数据处理  重置data的行号\n",
    "\n",
    "### DataFrame可以通过set_index方法，可以设置单索引和复合索引。 \n",
    "\n",
    "- DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)  append添加新索引，inplace：设置是否就地发生； 默认为False inplace=True\n",
    "\n",
    "### DataFrame.reset_index （常用于在数据清洗过后，对数据重新设置连续行索引。）可以还原索引，从新变为默认的整型索引。reset_index()，它是set_index()的反操作，调用它分层索引的索引层级会被还原到列中。\n",
    "\n",
    "- DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill=”) ；level控制了具体要还原的那个等级的索引 ；drop为False则索引列会被还原为普通列，否则会丢失。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>代码</th>\n",
       "      <th>简称</th>\n",
       "      <th>日期</th>\n",
       "      <th>前收盘价(元)</th>\n",
       "      <th>开盘价(元)</th>\n",
       "      <th>最高价(元)</th>\n",
       "      <th>最低价(元)</th>\n",
       "      <th>收盘价(元)</th>\n",
       "      <th>成交量(股)</th>\n",
       "      <th>成交金额(元)</th>\n",
       "      <th>涨跌(元)</th>\n",
       "      <th>涨跌幅(%)</th>\n",
       "      <th>均价(元)</th>\n",
       "      <th>换手率(%)</th>\n",
       "      <th>A股流通市值(元)</th>\n",
       "      <th>总市值(元)</th>\n",
       "      <th>A股流通股本(股)</th>\n",
       "      <th>市盈率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-04</td>\n",
       "      <td>16.1356</td>\n",
       "      <td>16.1444</td>\n",
       "      <td>16.1444</td>\n",
       "      <td>15.4997</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>42240610</td>\n",
       "      <td>754425783</td>\n",
       "      <td>-0.4151</td>\n",
       "      <td>-2.5725</td>\n",
       "      <td>17.8602</td>\n",
       "      <td>0.2264</td>\n",
       "      <td>3.320318e+11</td>\n",
       "      <td>3.320318e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.5614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-05</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>15.9501</td>\n",
       "      <td>15.3672</td>\n",
       "      <td>15.8618</td>\n",
       "      <td>58054793</td>\n",
       "      <td>1034181474</td>\n",
       "      <td>0.1413</td>\n",
       "      <td>0.8989</td>\n",
       "      <td>17.8139</td>\n",
       "      <td>0.3112</td>\n",
       "      <td>3.350163e+11</td>\n",
       "      <td>3.350163e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.6204</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-06</td>\n",
       "      <td>15.8618</td>\n",
       "      <td>15.8088</td>\n",
       "      <td>16.0208</td>\n",
       "      <td>15.6234</td>\n",
       "      <td>15.9855</td>\n",
       "      <td>46772653</td>\n",
       "      <td>838667398</td>\n",
       "      <td>0.1236</td>\n",
       "      <td>0.7795</td>\n",
       "      <td>17.9307</td>\n",
       "      <td>0.2507</td>\n",
       "      <td>3.376278e+11</td>\n",
       "      <td>3.376278e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.6720</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-07</td>\n",
       "      <td>15.9855</td>\n",
       "      <td>15.7205</td>\n",
       "      <td>15.8088</td>\n",
       "      <td>15.3672</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>11350479</td>\n",
       "      <td>199502702</td>\n",
       "      <td>-0.5211</td>\n",
       "      <td>-3.2597</td>\n",
       "      <td>17.5766</td>\n",
       "      <td>0.0608</td>\n",
       "      <td>3.266223e+11</td>\n",
       "      <td>3.266223e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.4545</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2016-01-08</td>\n",
       "      <td>15.4644</td>\n",
       "      <td>15.6675</td>\n",
       "      <td>15.7912</td>\n",
       "      <td>14.9345</td>\n",
       "      <td>15.4467</td>\n",
       "      <td>71918296</td>\n",
       "      <td>1262105060</td>\n",
       "      <td>-0.0177</td>\n",
       "      <td>-0.1142</td>\n",
       "      <td>17.5492</td>\n",
       "      <td>0.3855</td>\n",
       "      <td>3.262492e+11</td>\n",
       "      <td>3.262492e+11</td>\n",
       "      <td>1.865347e+10</td>\n",
       "      <td>6.4471</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>322</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-03</td>\n",
       "      <td>15.1600</td>\n",
       "      <td>15.1600</td>\n",
       "      <td>15.1600</td>\n",
       "      <td>15.0500</td>\n",
       "      <td>15.0800</td>\n",
       "      <td>14247943</td>\n",
       "      <td>215130847</td>\n",
       "      <td>-0.0800</td>\n",
       "      <td>-0.5277</td>\n",
       "      <td>15.0991</td>\n",
       "      <td>0.0659</td>\n",
       "      <td>3.260037e+11</td>\n",
       "      <td>3.260037e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.1395</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>323</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-04</td>\n",
       "      <td>15.0800</td>\n",
       "      <td>15.0700</td>\n",
       "      <td>15.0700</td>\n",
       "      <td>14.9000</td>\n",
       "      <td>14.9800</td>\n",
       "      <td>19477788</td>\n",
       "      <td>291839737</td>\n",
       "      <td>-0.1000</td>\n",
       "      <td>-0.6631</td>\n",
       "      <td>14.9832</td>\n",
       "      <td>0.0901</td>\n",
       "      <td>3.238418e+11</td>\n",
       "      <td>3.238418e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>324</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-05</td>\n",
       "      <td>14.9800</td>\n",
       "      <td>14.9500</td>\n",
       "      <td>14.9800</td>\n",
       "      <td>14.5200</td>\n",
       "      <td>14.9200</td>\n",
       "      <td>40194577</td>\n",
       "      <td>592160198</td>\n",
       "      <td>-0.0600</td>\n",
       "      <td>-0.4005</td>\n",
       "      <td>14.7323</td>\n",
       "      <td>0.1859</td>\n",
       "      <td>3.225447e+11</td>\n",
       "      <td>3.225447e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0744</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>325</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-08</td>\n",
       "      <td>14.9200</td>\n",
       "      <td>14.7800</td>\n",
       "      <td>14.9000</td>\n",
       "      <td>14.5100</td>\n",
       "      <td>14.8600</td>\n",
       "      <td>43568576</td>\n",
       "      <td>638781010</td>\n",
       "      <td>-0.0600</td>\n",
       "      <td>-0.4021</td>\n",
       "      <td>14.6615</td>\n",
       "      <td>0.2015</td>\n",
       "      <td>3.212476e+11</td>\n",
       "      <td>3.212476e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>326</th>\n",
       "      <td>600000.SH</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>2017-05-09</td>\n",
       "      <td>14.8600</td>\n",
       "      <td>14.6900</td>\n",
       "      <td>14.8400</td>\n",
       "      <td>14.6600</td>\n",
       "      <td>14.7600</td>\n",
       "      <td>19225492</td>\n",
       "      <td>283864640</td>\n",
       "      <td>-0.1000</td>\n",
       "      <td>-0.6729</td>\n",
       "      <td>14.765</td>\n",
       "      <td>0.0889</td>\n",
       "      <td>3.190858e+11</td>\n",
       "      <td>3.190858e+11</td>\n",
       "      <td>2.161828e+10</td>\n",
       "      <td>6.0093</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>327 rows × 18 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            代码    简称         日期  前收盘价(元)   开盘价(元)   最高价(元)   最低价(元)   收盘价(元)    成交量(股)     成交金额(元)   涨跌(元)  涨跌幅(%)    均价(元)  换手率(%)     A股流通市值(元)        总市值(元)     A股流通股本(股)     市盈率\n",
       "0    600000.SH  浦发银行 2016-01-04  16.1356  16.1444  16.1444  15.4997  15.7205  42240610   754425783 -0.4151 -2.5725  17.8602  0.2264  3.320318e+11  3.320318e+11  1.865347e+10  6.5614\n",
       "1    600000.SH  浦发银行 2016-01-05  15.7205  15.4644  15.9501  15.3672  15.8618  58054793  1034181474  0.1413  0.8989  17.8139  0.3112  3.350163e+11  3.350163e+11  1.865347e+10  6.6204\n",
       "2    600000.SH  浦发银行 2016-01-06  15.8618  15.8088  16.0208  15.6234  15.9855  46772653   838667398  0.1236  0.7795  17.9307  0.2507  3.376278e+11  3.376278e+11  1.865347e+10  6.6720\n",
       "3    600000.SH  浦发银行 2016-01-07  15.9855  15.7205  15.8088  15.3672  15.4644  11350479   199502702 -0.5211 -3.2597  17.5766  0.0608  3.266223e+11  3.266223e+11  1.865347e+10  6.4545\n",
       "4    600000.SH  浦发银行 2016-01-08  15.4644  15.6675  15.7912  14.9345  15.4467  71918296  1262105060 -0.0177 -0.1142  17.5492  0.3855  3.262492e+11  3.262492e+11  1.865347e+10  6.4471\n",
       "..         ...   ...        ...      ...      ...      ...      ...      ...       ...         ...     ...     ...      ...     ...           ...           ...           ...     ...\n",
       "322  600000.SH  浦发银行 2017-05-03  15.1600  15.1600  15.1600  15.0500  15.0800  14247943   215130847 -0.0800 -0.5277  15.0991  0.0659  3.260037e+11  3.260037e+11  2.161828e+10  6.1395\n",
       "323  600000.SH  浦发银行 2017-05-04  15.0800  15.0700  15.0700  14.9000  14.9800  19477788   291839737 -0.1000 -0.6631  14.9832  0.0901  3.238418e+11  3.238418e+11  2.161828e+10  6.0988\n",
       "324  600000.SH  浦发银行 2017-05-05  14.9800  14.9500  14.9800  14.5200  14.9200  40194577   592160198 -0.0600 -0.4005  14.7323  0.1859  3.225447e+11  3.225447e+11  2.161828e+10  6.0744\n",
       "325  600000.SH  浦发银行 2017-05-08  14.9200  14.7800  14.9000  14.5100  14.8600  43568576   638781010 -0.0600 -0.4021  14.6615  0.2015  3.212476e+11  3.212476e+11  2.161828e+10  6.0500\n",
       "326  600000.SH  浦发银行 2017-05-09  14.8600  14.6900  14.8400  14.6600  14.7600  19225492   283864640 -0.1000 -0.6729   14.765  0.0889  3.190858e+11  3.190858e+11  2.161828e+10  6.0093\n",
       "\n",
       "[327 rows x 18 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = df.reset_index(drop = True)\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十五题 异常值处理 删除所有换手率为非数字的行\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43]"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "k =[]\n",
    "for i in range(len(df)):\n",
    "    if type(df.iloc[i,13]) != float:\n",
    "        k.append(i)\n",
    "k"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "no numeric data to plot",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-30-7ede6f8edee8>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mdf\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'换手率(%)'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkind\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'kde'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32mD:\\Program Files\\Anaconda3\\lib\\site-packages\\pandas\\plotting\\_core.py\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m    845\u001b[0m                     \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolumns\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mlabel_name\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    846\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 847\u001b[1;33m         \u001b[1;32mreturn\u001b[0m \u001b[0mplot_backend\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mkind\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mkind\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    848\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    849\u001b[0m     \u001b[0m__call__\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__doc__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m__doc__\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\Program Files\\Anaconda3\\lib\\site-packages\\pandas\\plotting\\_matplotlib\\__init__.py\u001b[0m in \u001b[0;36mplot\u001b[1;34m(data, kind, **kwargs)\u001b[0m\n\u001b[0;32m     59\u001b[0m             \u001b[0mkwargs\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"ax\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0max\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"left_ax\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0max\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     60\u001b[0m     \u001b[0mplot_obj\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mPLOT_CLASSES\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mkind\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 61\u001b[1;33m     \u001b[0mplot_obj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgenerate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     62\u001b[0m     \u001b[0mplot_obj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     63\u001b[0m     \u001b[1;32mreturn\u001b[0m \u001b[0mplot_obj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mresult\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\Program Files\\Anaconda3\\lib\\site-packages\\pandas\\plotting\\_matplotlib\\core.py\u001b[0m in \u001b[0;36mgenerate\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    259\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0mgenerate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    260\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_args_adjust\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 261\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_compute_plot_data\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    262\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_setup_subplots\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    263\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_plot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32mD:\\Program Files\\Anaconda3\\lib\\site-packages\\pandas\\plotting\\_matplotlib\\core.py\u001b[0m in \u001b[0;36m_compute_plot_data\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    408\u001b[0m         \u001b[1;31m# no non-numeric frames or series allowed\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    409\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mis_empty\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 410\u001b[1;33m             \u001b[1;32mraise\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"no numeric data to plot\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    411\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    412\u001b[0m         \u001b[1;31m# GH25587: cast ExtensionArray of pandas (IntegerArray, etc.) to\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mTypeError\u001b[0m: no numeric data to plot"
     ]
    }
   ],
   "source": [
    "df['换手率(%)'].plot(kind='kde')   #没有删除换手率这列中非数字的行 故无法画出换手率的密度曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.drop(labels=k,inplace=True)  #删除所有换手率为非数字的行"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十六题  数据可视化 绘制换手率的密度曲线\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x189dce514c8>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['换手率(%)'].plot(kind = 'kde')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x189dd001488>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df['换手率(%)'].plot(kind = 'kde',xlim=(-0.4,1.2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十七题 数据计算  计算前一天与后一天收盘价的差值\n",
    "\n",
    "### diff函数是从数学上来说，是将数据与平移后的数据进行比较得出的差异数据。从操作的意义上来说，是两条临近记录的差值，也就是一阶差分。\n",
    "\n",
    "- DataFrame.diff(periods=1, axis=0)。其中axis 表示纵轴还是横轴，periods表示平移的条目数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0         NaN\n",
       "1      0.1413\n",
       "2      0.1237\n",
       "3     -0.5211\n",
       "4     -0.0177\n",
       "        ...  \n",
       "322   -0.0800\n",
       "323   -0.1000\n",
       "324   -0.0600\n",
       "325   -0.0600\n",
       "326   -0.1000\n",
       "Name: 收盘价(元), Length: 309, dtype: float64"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['收盘价(元)'].diff()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第六十八题 数据计算 计算前一天与后一天收盘价变化率\n",
    "\n",
    "### pct_change() 计算 前一个值和后一个值的变化率\n",
    "\n",
    "- DataFrame.pct_change(periods=1, fill_method=‘pad’, limit=None, freq=None, **kwargs) 表示当前元素与先前元素的相差百分比，指定periods=n,表示当前元素与先前n个元素的相差百分比。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0           NaN\n",
       "1      0.008988\n",
       "2      0.007799\n",
       "3     -0.032598\n",
       "4     -0.001145\n",
       "         ...   \n",
       "322   -0.005277\n",
       "323   -0.006631\n",
       "324   -0.004005\n",
       "325   -0.004021\n",
       "326   -0.006729\n",
       "Name: 收盘价(元), Length: 309, dtype: float64"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['收盘价(元)'].pct_change()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
